package se.sics.drsm.inits;

import se.sics.drsm.model.SONConfiguration;
import se.sics.kompics.Init;
import se.sics.kompics.address.Address;
import se.sics.kompics.p2p.bootstrap.BootstrapConfiguration;
import se.sics.kompics.p2p.fd.ping.PingFailureDetectorConfiguration;
import se.sics.kompics.p2p.monitor.chord.server.ChordMonitorConfiguration;

public class NodeInit extends Init {

    private final Address self;
    private final BootstrapConfiguration bootstrapConfiguration;
    private final ChordMonitorConfiguration monitorConfiguration;
    private final SONConfiguration sonConfiguration;
    private final PingFailureDetectorConfiguration failureDetectorConfiguration;


    public NodeInit(Address self,
                    BootstrapConfiguration bootstrapConfiguration,
                    ChordMonitorConfiguration monitorConfiguration,
                    SONConfiguration chordConfiguration,
                    PingFailureDetectorConfiguration failureDetectorConfiguration) {
        super();
        this.self = self;
        this.bootstrapConfiguration = bootstrapConfiguration;
        this.monitorConfiguration = monitorConfiguration;
        this.sonConfiguration = chordConfiguration;
        this.failureDetectorConfiguration = failureDetectorConfiguration;
    }


    public Address getSelf() {
        return self;
    }

    public BootstrapConfiguration getBootstrapConfiguration() {
        return bootstrapConfiguration;
    }

    public SONConfiguration getSonConfiguration() {
        return sonConfiguration;
    }

    public PingFailureDetectorConfiguration getFailureDetectorConfiguration() {
        return failureDetectorConfiguration;
    }

    public ChordMonitorConfiguration getMonitorConfiguration() {
        return monitorConfiguration;
    }

}